$(function(){
   /*
全选思路
1.给 allselect 绑定事件
2.获取 当前  allselect 的状态 那变量结构
3.让单个商品的 选框 进行 装填跟随
4.让另一个 全选 也 同步状态

*/ 
   $(".allSelect").click(function(){
       let res1=$(this).prop("checked")
       $(".select_box").prop("checked",res1)
       $(".allSelect").prop("checked",res1)
       allCount()
   })
   
//全选 跟随思路
/*
    1.单项商品 选框 绑定事件
    2.如果  有 选中状态为true的 选框个数  和 单项商品选框个数 一致  那全选框 要做选中
        1.获取单项商品选框个数
        2.获取 选中状态为true的 个数
        3.两个个数 一致 就 全选框 设置状态为true

*/
   $(".select_box").click(function(){
       let res1=$(".select_box").length
       let res2=$(".select_box:checked").length
       if(res1==res2){
        $(".allSelect").prop("checked",true)
       }else{
        $(".allSelect").prop("checked",false)
       }
       allCount()
    })

/*
加:
    1.绑定 +span  的点击事件
    2.获取当前 input的值
    3.进行自增
    4.把自增完成的结果 放回去

*/ 
 
$(".addNum").click(function(){
    
 $(this).siblings(".reduce").css({
  "cursor":'pointer',
  "backgroundColor":''
})
 let num=$(this).next("input").val()
 num++;
 $(this).next("input").val(num)
 count($(this))
 allCount()
})
/*
减: 逻辑同上  自减

*/ 
$(".reduce").click(function(){
    let num=$(this).prev("input").val()
    num--;
    if(num>=1){
        $(this).prev("input").val(num)
        
    }else{
        $(this).css({
            "cursor":'not-allowed',
            "backgroundColor":'#f2f2f2'
        })
    }
   count($(this))
   allCount()
})

function count(obj){
    //拿到数量
    let num=obj.siblings("input").val()

    //拿到当前行 的 单价 
    let price=obj.closest(".buycar_list_ul li").find(".sPrice").text()

    //计算
    let result=(num*price).toFixed(2);
    //给当前行的 小计设置结果
    obj.closest(".buycar_list_ul li").find(".count").text(result)


}


//总计
/*
    只要有选中 就要进行总价的计算

    逻辑:
        拿到 所有 有选中状态的 单项 的 小计 和 商品个数
        小计累加 放到总价上
        数量累加 放到 以选商品中

    注意:
        全选事件 中 调用
        单选事件中 调用
        加法事件 中 调用
        减法法事件 中 调用

*/

function allCount(){
    //1.设置金额变量 和 个数变量
    let allNum=0;
    let allPrice=0;
    $(".select_box:checked").each(function(index,cur_checkbox){
        //利用循环 进行 累加 求和
        let num=Number($(cur_checkbox).closest(".buycar_list_ul li").find(".num").val())
        allNum+=num;
        let price=Number($(cur_checkbox).closest(".buycar_list_ul li").find(".count").text())
        allPrice+=price;
    })
    // console.log(`统计数量:${allNum}`,`统计金额${allPrice}`)
    //把数量放到 .aNum中
    $("#aNum").text(allNum)

    //把金额放到 #total
    $("#total").text(allPrice)



}
})

